from django.shortcuts import render_to_response
from django.http import HttpResponse
from auth.decorators import login_required
from asistencia.models import *
from django.core.servers.basehttp import FileWrapper
import asistencia.exportar_grupo, asistencia.leer_reporte
import os

'''
Index del modulo de asistencia
'''
@login_required
def asistencia(request):
    usuario = request.user
    
    #obtener grupos administrados por el usuario
    mis_grupos = []
    for g in GrupoAsistencia.objects.all():
        if g.grupo_asociado.administrador == usuario:
            mis_grupos += [g.grupo_asociado]
    
    #obtener grupos a los que pertenece el usuario
    grupos = []
    for g in GrupoAsistencia.objects.all():
        if g.grupo_asociado.administrador != usuario: 
            contenido = False
            for u in g.grupo_asociado.miembros.all():
                if u == usuario:
                    contenido = True
            if contenido:
                grupos+= [g.grupo_asociado]
    return render_to_response('asistencia/grupos.html',{'usuario':usuario, 'mis_grupos':mis_grupos, 'grupos':grupos})

'''
Miembros del grupo asistencia
'''
@login_required
def grupo(request, nombre_grupo):
    grupo = Grupo.objects.get(nombre=nombre_grupo)
    if request.user == grupo.administrador:
        return render_to_response('asistencia/grupo.html',{'grupo':grupo})
    else:
        return render_to_response('asistencia/e_no_admin.html',{'grupo':grupo})


'''
Asistencias de un miembro del grupo
'''
@login_required
def asistencia_miembro(request, nombre_grupo, username_miembro):
    grupo = Grupo.objects.get(nombre=nombre_grupo)
    miembro = User.objects.get(username=username_miembro)
    listado_asistencias = las_asistencias(grupo,miembro)
    return render_to_response('asistencia/asistencia_miembro.html',{'grupo':grupo, 'miembro':miembro, 'requs':request.user, 'list_as':listado_asistencias})


# Obtener las asistencias de un miembro del grupo
def las_asistencias(grupo,usuario):
    ga = GrupoAsistencia.objects.get(grupo_asociado=grupo)
    ua = UserAsistencia.objects.get(usuario_asociado=usuario)
    asistencias = []
    for ea in EventoAsistencia.objects.all():
        if ea.grupoAsistencia_asociado==ga:
            for rua in RelUserAsistencia.objects.all():
                if rua.usuario_asociado==ua:
                    asistencias += [(ea.fecha,rua.asistencia_usuario)]
    return asistencias

'''
@login_required
def exportar(request, name):
	#grupoExportar = Grupo.objects.get(nombre=name)
	#grupoAsistencia = GrupoAsistencia.objects.get(grupo_asociado=grupoExportar)
	archivo = exportar_grupo.exportar([], archivo=name+'.xml')
	
	# Generar archivo html
	#response = HttpResponse(mimetype='application/xml')
	#response['Content-Disposition'] = 'attachment; filename=' + name + '.xml'
	
	#fl = open(archivo, "r")
	#for line in fl:
		response.write(line + "\n")
		
	# Devolver la respuesta
	#return response
	
	filename = name + '.xml'
	wrapper = FileWrapper(file(filename))
	response = HttpResponse(wrapper, content_type='text/plain')
	response['Content-Length'] = os.path.getsize(filename)
	return response
'''
